﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cache
{
    class Program
    {
        /// <summary>
        /// 缓存  实际上是一种效果  ，就是获取数据的时候，第一次获取之后找个地方存起来 后期直接使用，这样依赖 可以提升后面获取数据的效率；
        /// 1.读取配置文件的时候吧信息放在静态字段，这就是缓存
        /// 策略：浏览器缓存：ResponseHeader-Cache-control来指定缓存策略 浏览器会在内存存储、、
        /// DNS加速 
        /// 反向代理：（后端服务集群）  加快访问网络路径 
        /// 
        /// //查询服务可以做一个 缓存   字典 +委托  结果重用 如果数据有变化 导致数据不一致  -----数据的脏读（脏数据）
        /// 解决办法：
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            {
                ////用户 - 角色 - 菜单  用户权限查询的多 +比较耗费资源 +相对稳定 非常适合做缓存 ：方式 用户Id为Key 菜单为Value
                ///
                /////
                string name = "Ecccc";
                List<string> menu = new List<string>();
                if (!CustomCache.Exists(name))
                {
                    menu = new List<string> { "123", "aadwddad" };
                    CustomCache.Add(name, menu);
                }
                else {
                    menu = CustomCache.Get<List<string>>(name);
                }
            }

            {
                //2

            }

            { 
            //3 

            
            }
           
        }
    }
}
